package com.yssoft.mapper.production;

import com.yssoft.entity.production.TWorksheet;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
import java.util.Map;

public interface TWorksheetMapper extends Mapper<TWorksheet> {

	/**
	 * @方法名称: selectWorksheetPage
	 * @功能描述: 获取加工单信息列表
	 * @作者: 洪丰
	 * @创建时间:2018年5月9日 上午11:31:00
	 * @param param
	 * @return List<Map<String,Object>>
	 */
	List<Map<String,Object>> selectWorksheetPage(Map<String,Object> param);
	/**
	 * @方法名称: selectWorksheetPage1
	 * @功能描述: 获取加工单信息列表
	 * @作者: 王永宁
	 * @创建时间:2018年6月6日 下午9:31:00
	 * @param param
	 * @return List<Map<String,Object>>
	 */
	List<Map<String,Object>> selectWorksheetPage1(Map<String,Object> param);
	
	/**
	 * @方法名称: selectWorksheetDetail
	 * @功能描述: 获取加工单详细
	 * @作者: 洪丰
	 * @创建时间:2018年5月9日 下午1:11:51
	 * @param param
	 * @return List<Map<String,Object>>
	 */
	Map<String,Object> selectWorksheetDetail(@Param("id") Integer param);
    /**
    * @方法名: selectWorksheetAndProducts
    * @创建人: 陈翼东
    * @时间: 2018/5/9 下午 03:41
    * @参数: [worksheetId]
    * @返回值: java.util.Map<java.lang.String,java.lang.Object>
    * @说明: 查询加工单信息和批次码和成品溯源类型
    */
    List<Map<String,Object>> selectWorksheetAndProducts(String worksheetId);

    /**
     * 查询最大Code值
     * @author 戈超
     * @param param 
     * @param string
     * @param gettBId
     * @return
     */
	Integer queryCodeNum(Map<String, Object> param);
    
    
    /**
     * 查询物料使用数据
     * @param wsId
     * @return
     */
    List<Map<String, Object>> queryMaterialRecord(@Param("wsId") Integer wsId);
    
    /**
    * @方法名: selectByPackageCode
    * @创建人: 陈翼东
    * @时间: 2018/5/12 上午 11:54
    * @参数: [packageCode]
    * @返回值: java.util.Map<java.lang.String,java.lang.Object>        
    * @说明: 根据包装码获取加工单
    */
    Map<String,Object> selectByPackageCode(String packageCode);
    
    /**
     * @方法名称: selectProIdByworksheetID
     * @功能描述: 通过加工单id获取商品id
     * @作者: 洪丰
     * @创建时间:2018年5月17日 下午8:22:13
     * @param wsId
     * @return Map<String,Object>
     */
    Integer selectProIdByworksheetID(@Param("id") Integer wsId);
    
    /**
    * @方法名: getApplyDetailByBatch
    * @创建人: 陈翼东
    * @时间: 2018/5/18 下午 04:35
    * @参数: [code]
    * @返回值: java.util.Map<java.lang.String,java.lang.Object>
    * @说明: 根据标签获取加工单信息
    */
    Map<String, Object> getApplyDetailByBatch(String code);
    
    /**
    * @方法名: selectByApplyDetail
    * @创建人: 陈翼东
    * @时间: 2018/5/18 下午 04:45
    * @参数: [applyDetailId]
    * @返回值: java.util.Map<java.lang.String,java.lang.Object>
    * @说明: 根据入库申请明细查询加工单
    */
    Map<String, Object> selectByApplyDetail(String applyDetailId);
    
    /**
    * @方法名: selectWorksheetAndBeatch
    * @创建人: 陈翼东
    * @时间: 2018/5/18 下午 07:24
    * @参数: [worksheetid]
    * @返回值: java.util.Map<java.lang.String,java.lang.Object>
    * @说明: 根据加工单id获取加工单和批次信息
    */
    Map<String, Object> selectWorksheetAndBeatch(String worksheetid);
    
    /**
    * @方法名: selectByCodePackage
    * @创建人: 陈翼东
    * @时间: 2018/5/19 上午 09:23
    * @参数: [code]
    * @返回值: java.util.Map<java.lang.String,java.lang.Object>
    * @说明: 通过标签码获取包装码对应的加工单
    */
    Map<String, Object> selectByPackageCodeId(String code);
    /**
     * @方法名: selectByCodePackage
     * @创建人: 陈翼东
     * @时间: 2018/5/19 上午 09:23
     * @参数: [code]
     * @返回值: java.util.Map<java.lang.String,java.lang.Object>
     * @说明: 通过包装码获取对应的加工单id
     */
    Map<String, Object> selectIdByPackageCode(String packageCode);
    
    /**
     * @方法名: selectByCodePackage
     * @创建人: 陈翼东
     * @时间: 2018/5/19 上午 09:23
     * @参数: [code]
     * @返回值: java.util.Map<java.lang.String,java.lang.Object>
     * @说明: 查询加工单和产品,区域等信息
     */
    List<Map<String, Object>> selectByPage(Map<String, Object> params);
    
    /**
     * @方法名: selectByCodePackage
     * @创建人: 陈翼东
     * @时间: 2018/6/12 上午 10:23
     * 根据加工单查询生产工艺指标(监管方查看的不分企业)
     * @param workId
     * @return
     */
    List<Map<String, Object>> selectProductionProcessList(String workId);
    
    /**
     * @方法名称: selectworksheetByBatchId
     * @功能描述: 通过批次id获取加工单信息
     * @作者: 洪丰
     * @创建时间:2018年6月14日 上午10:51:04
     * @param batchId
     * @return List<Map<String,Object>>
     */
    List<Map<String, Object>> selectworksheetByBatchId(Map<String, Object> params);
    /**
     * @方法名称: selectAllSql
     * @功能描述: 根据批次id查询加工单
     * @作者: 王永宁
     * @创建时间:2018年9月6日14:50:10
     */
	List<Map<String, Object>> selectAllSql(Map<String, Object> param);
	/**
     * @方法名称: selectCountSql
     * @功能描述: 根据批次id查询加工单条数
     * @作者: 王永宁
     * @创建时间:2018年9月6日14:50:19
     */
	int selectCountSql(Map<String, Object> param);
}